home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
InfoMagic Standards 1994 January
/
InfoMagic Standards - January 1994.iso
/
misc
/
merit
/
noop
/
tutorial
/
clnpint.doc
next >
Wrap
Text File
|
1991-03-21
|
9KB
|
199 lines
A Day in the life of Ivan DnCLNPacket
by: Robert Hagens
University of Wisconsin
hagens@cs.wisc.edu
Introduction
An OSI End System. Layered. Complicated. This was a place where
packets lived a hard and fast life. This is the story of
one particular packet. This story is not a unique one.
It happens every day. It may already have happened to you.
Ivan, a CLNP packet from birth, worked on the Connectionless Squad (CL).
His squad leader, Mikhail, had been running the Connectionless network
layer for 15 years. Ivan was lucky to be in the CL squad.
He had heard all the stories from Ivan about the other guys in the
compound -- the Connection-oriented squad. The Gosip was that
life in the CO squad was brutal. The CO squad leader enforced his
reliable, guaranteed delivery service with an iron fist.
Luckly, Mikhail was fair, Ivan diligent. The absence of a
delivery guarantee for CLNP packets promoted a laissez-faire
atmosphere in the CL squad which permeated all its members.
Yes, there was envy from the CO squad, but lack of CO/CL communication
meant that he chance of a transfer between them was small.
The Squad Room
Ivan was already bored with Mikhail's briefing. He already knew that he was
a full CLNP packet and not a member of either of the two
subsets of the CLNP family. The non-segmenting subset, thought Ivan, was
only for those packets who were so sure that they would not be segmented
that they opted to save 6 bytes by not carrying the segmentation information
along. This segmentation information would be used if the packet was
split into several, smaller packets by an Intermediate System. This process,
(segmentation) was used if the packet was too large for a transmission
link to handle. The separate pieces of the packet would journey toward their
destination independently -- to be merged together once they reached
the destination.
Although Ivan was secretly frightened by the thought of being
carved up into many pieces by some unknown, butcher router,
he tried to project an outward excitement about the segmentation experience.
Of course, Ivan was very happy he was not a member of the Inactive network
layer subset. He had heard stories about these strange relatives with a 1
byte header containing only an identification field. What a strange
life it would be -- inactive until the end! Better to die
while living...
Ivan looked at his header in the hunk of stainless steel on the wall
that served as the squad's mirror. The fixed part was complete: his
header length set, his lifetime filled with a comfortable value of 30,
his type set to normal data, and his checksum (courtesy of Fletcher)
computed. The checksum, of course, was only computed on his header.
Ivan liked this. He would only worry about his header. The data he
carried belonged to a transport connection. He was glad to let the
transport connection worry about their data with their own checksum.
Data. Normal data. That was Ivan's type of packet. Better to be
a normal data packet than a ghastly Error Report. No one liked the bearer
of bad news. It was a dangerous profession; especially in this compound.
It was much better to transport data than the remains of some
unknown, discarded packet.
The other parts of Ivan's header were in place. His addressing part
was complete with a source and destination NSAP address. His segmentation
part initialized and ready to be used if (his mind raced at the thought)
segmentation were to occur.
The final section of Ivan's header, the options part, contained
a few of the possible CLNP options.
"You will notice, Ivan", Mikhail's voice brought Ivan's attention
back to the front of the room, "that I have given you several optional
parameters. I have added the Padding Option to increase your total
header length to a multiple of 4 bytes. You also have a source route
and record route option. You will visit each router in the source route
list during your journey through the network. The record route option
will be used to log the addresses of all the routers you visit.
Every time you visit a router, he will write his address in the space I
have created."
"Why is the source route so small and the record route so large?" asked
Ivan. Mikhail explained that Ivan's source route was not a complete listing
of every router that must be visited. Rather, as a partial source route,
it only listed a few of the routers to be visited.
"So I can visit as many routers as I wish, as long as I visit
the ones listed in the source route, in the order listed?", interrupted Ivan.
"That's right", Mikhail said. "But keep in mind that your record route
option is fixed in size".
"Huh?"
"Your record route option is large enough to contain the address of
many routers. However, its size was fixed when you were created. The option
can not expand during your journey. If you visit so many routers that your
record route option is filled with all the addresses, the recording will
have to be terminated."
"Well, I'll be careful.", reassured Ivan.
"Indeed. And watch your lifetime. It will decrease as you travel. If
it reaches zero, you'll be discarded."
"Don't worry, Mikhail. My lifetime is 30! I have plenty of time."
With that, Ivan scrambled out the door, ready to begin his journey.
"That's what the last packet thought as well", Mikhail whispered.
The Network Swamps
The first few routers that Ivan visited were not very busy
and the trip was uneventful. Whenever Ivan arrived at an
Intermediate System, that system would write its address into Ivan's
record route option, and Ivan's lifetime field would be decremented.
With a new header checksum computed, Ivan was immediately forwarded out onto
a link towards his destination. In fact, until he reached the long-haul
backbone, Ivan didn't even notice the steady tick-tick-ticking of his
lifetime field.
The moment Ivan appeared on the backbone router's input queue,
he felt that something was wrong. The heat was intense. The room noisy.
He stood in line trying to gauge the length of the queue.
It looked like 6, maybe 7 packets were already waiting.
Judging by the size of their lifetime fields, many had been traveling
for a long time. Ivan waited impatiently to get closer to the front
of the line. Suddenly, as he was about to step up to be routed,
2 other packets jumped in front of him.
"Wait a minute!" Ivan started to shove.
The big, blue router looked down,
"Priority Packets, kiddo. If ya don't have a priority option, yer
priority is low."
Ivan waited for the priority packets to leave.
He stepped up to the router.
"Destination?"
Ivan told him.
"Ok. T'ird link from da left. Ya's been here awhile. Cut da lifetime
field by foah."
"Four, FOUR?", Ivan couldn't believe his ears.
"Look fella", the router mumbled, "yer a CLNP packet. Dat means yer
lifetime ain't no hop count. It's a time field. And ya been here awhile."
Ivan ran to the link. His lifetime was down farther than he thought
possible. He knew that if the lifetime field dropped to zero, he would
be discarded. Like many packets, he didn't think it could happen to him.
He wasn't ready to die. As he jumped down the link, he wondered
if he would see those quiet regional networks again...
The next few routers on the backbone were no better. Long delays at each
one spelled trouble. One of the routers was so congested that it
was dropping packets at random. Ivan was horrified to watch the packet
in front of him get discarded, wrapped up in an Error Report, and shipped
back towards its source. Other packets at that router were
getting their Congestion Experienced bits turned on.
When it was Ivan's turn, the router looked at him with distaste.
"You don't have a Quality of Service Option".
"I don't?", Ivan half questioned.
"No. You don't."
Ivan did not understand that the congestion experienced
bit was part of the quality of service option. Since that option was not
required on every packet, it wasn't always available to be set.
"We backbone routers rely on the QOS congestion experienced bit to
inform the transport connections that we are congested. What part of the
network do you come from, anyway?"
Ivan started to list his record route option. The bored router
interrupted,
"Never mind. Begone. Last link on the right".
Ivan never made it to his destination. His lifetime expired somewhere
between the far side of the backbone and his destination subnetwork.
His data was discarded. His header not even returned to the compound,
for the system that discarded him did not care to send an Error Report.
Ivan's epitaph read:
Run, don't plod.
Take it from me.
Behold, behold the links I trod
for ISO 8473.
[All characters are fictious, no referenece to any packet or router,
past present or future is intended or should be construed.]